package someTestExcemple.huaweiOd.regularExpression;
//华为OD机试 - 洞穴探险 - 正则表达式（Java 2025 A卷 100分）
//https://blog.csdn.net/guorui_java/article/details/146997707
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Spelunk {
    public static void main(String[] args) {
        // 创建Scanner对象用于读取控制台输入
        Scanner scanner = new Scanner(System.in);
        // 读取一行输入
        String input = scanner.nextLine();
        // 关闭Scanner
        scanner.close();

        // 调用findFarthestFootprint方法找出最远足迹
        String result = findFarthestFootprint(input);
        // 输出结果
        System.out.println(result);
    }

    /**
     * 找出最远的足迹坐标
     * @param input 包含坐标信息的输入字符串
     * @return 最远足迹的坐标字符串
     */
    public static String findFarthestFootprint(String input) {
        // 使用正则表达式匹配所有(x,y)格式的坐标
        Pattern pattern = Pattern.compile("\\((\\d+),(\\d+)\\)");

        Matcher matcher = pattern.matcher(input);
        long maxDistance = -1;  // 初始化最大距离为-1
        String farthestPoint = "(0,0)";  // 默认结果为(0,0)

        // 遍历所有匹配到的坐标
        while (matcher.find()) {
            String x = matcher.group(1);  // 提取x坐标
            String y = matcher.group(2);  // 提取y坐标

            // 检查坐标是否合法
            if (isValidCoordinate(x, y)) {
                int xVal = Integer.parseInt(x);
                int yVal = Integer.parseInt(y);

                // 计算距离 (x*x + y*y)
                long distance = (long)xVal * xVal + (long)yVal * yVal;

                // 更新最远足迹
                if (distance > maxDistance) {
                    maxDistance = distance;
                    farthestPoint = "(" + x + "," + y + ")";
                }
            }
        }

        return farthestPoint;
    }

    /**
     * 检查坐标是否合法
     * @param x x坐标字符串
     * @param y y坐标字符串
     * @return 坐标是否合法
     */
    public static boolean isValidCoordinate(String x, String y) {
        // 检查x和y是否有前导0
        if ((x.length() > 1 && x.startsWith("0")) || (y.length() > 1 && y.startsWith("0"))) {
            return false;
        }

        try {
            int xVal = Integer.parseInt(x);
            int yVal = Integer.parseInt(y);

            // 检查x和y是否在有效范围内 (0<x<1000, 0<y<1000)
            return xVal > 0 && xVal < 1000 && yVal > 0 && yVal < 1000;
            //转int出异常了
        } catch (NumberFormatException e) {
            return false;
        }
    }
}
